neflariafandomcom-20200213-history
User blog:Odys Regal/Methodology: Avg. Mob Stats
Recently, I obtained through experiment the average stats for the mobs in the Ancient Cemetery/The Shadowmist/Zhe'kah Bastion tier. I believe my findings to be either exact or off by exactly +/- 0.1%. These notes explain the methodology used to obtain them. The methodology was found to be consistent with other zones where average mob stats were given by the arches. Collecting Mob Stats Previously, I had calculated the stats of mobs in this tier by taking a straight average using, if I remember, one hit kills only. This gave me the number 3,637,812, which was skewed towards the low side, due to it being easier to kill mobs with lower stats. This time around, I went in with better gear, a larger sample size, and discovered a pattern. Data collection relies on the fact that all mob stats (str/dex/wis/ntl/vit) are the same (though it can be shown they are re-rolled between rounds of combat, ex. a mob can heal when you haven't damaged it yet). Writing down the amount of damage needed to kill a mob (minus the amount the mob healed) gives its vitality, and thus its stats. These data went into a spreadsheet. Players fighting mobs may have noticed that the same numbers have a tendency to repeat if they kill enough mobs. This happened in this data as well. Given that the spread (max - min) is over 760,000, it is extremely improbable that this is due to chance. This will lead to insight on how mob stats are generated later, and is key to discovering an important pattern. Patterns Emerge As the amount of data in the spreadsheet grew, I decided to order it from least to greatest. In hopes of discovering a pattern, I checked the difference between each value and its next highest neighbor. While there were some gaps, certain numbers appeared multiple times: 3822, 7644, 11466. Notice that 7644 = 3822*2 and 11466 = 3822*3. Sure enough, each difference was a multiple of 3822. The pattern emerged: every mob's stats was a multiple of 3822. (In general, avg mob stats do not end in zeroes, so slight (< .01%) rounding is necessary. This zone tier is convenient because the multiples are exact.) One mob in particular, with stats equal to exactly 3,822,000 = 3822 * 1000 had come up. A very round number. The minimum I obtained in my trials was 3,439,800 = 3822 * 900 and the maximum was 4,204,000 = 3822 * 1100. Not coincidentally, the average of the min and max is also 3,822,000. The average of my trials was 3,791,596, which is a 0.795% error. Probability Theory! The data sample includes 200 mob stats, with 67 duplicates and 89 unique data exactly 3822 apart. I theorized that mob stats are uniformly (evenly) distributed and checked the average and standard deviation against a uniform distribution using the parameters minimum a = 3,493,800 and maxmimum b = 4,204,000 The average of a (discrete) uniform distribution is (max + min)/2, which I found to be 3,822,000 as above, an exact match. The standard deviation of a (discrete) uniform distribution is sqrt[ (1/12) * (spread+1)^2 - 1) ]. The expected standard deviation based on a spread of 764,400 would be 220663.562. The standard deviation of my sample was 222876.217, a percent error of 1.003%, which is reasonable given the sample size. Therefore, I can say with confidence that stats are uniformly distributed. Furthermore, we can gain some insight into how mobs are generated. How Mob Stats Are Built The distance between mob stats is always a multiple of the same number. (In general, nearly always, due to rounding) This means that the total number of possible stats can be found and is the same for all mobs. The multiple ranges between 900 and 1100, which means that there are either 1100 - 900 + 1 = 201 possible mob stats. Because they are unformly (evenly) distributed, each of these 201 possible mob stats has an equal chance of appearing. Therefore, when a mob is generated, it does not calculate a minimum and maximum and select the mob stat from within there. The average stat is taken and multiplied by a random multiple from 90.0% to 110.0%. (with .1% increments) Or expressed as a function: stats = avg * 1100) / 1000 Category:Blog posts